package main

import "fmt"

func main() {
	// go 不支持删除某个元素，只能通过append去拼接删除

	a1 := [...]int{1,2,3,4,5,6} //删除元素5 数组不能切片append处理，必须转换成切片
	s1 := a1[:]
	fmt.Printf("%p", s1)
	s1 = append(s1[0:4], s1[5:]...)     //将5移除，6顶上来，然后修改了底层数组
	fmt.Println(s1, len(s1), cap(s1))
	fmt.Printf("%p", s1)

	fmt.Println(a1, len(s1), cap(s1))
    //[1 2 3 4 6] 5 6
	//[1 2 3 4 6 6] 5 6

	b1 := []int{1,2,3,4,5,6,7,8}
	b2 := b1
	//b1[0] = 1000
	b2 = append(b2[0:4], b2[5:]...)

	fmt.Printf("b1=%v, len(b1)=%d, cap(b1)=%d", b1, len(b1), cap(b1))
	//b1=[1 2 3 4 6 7 8 8], len(b1)=8, cap(b1)=8
	fmt.Println(b2)
}